package com.codegenerate.demo.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.codegenerate.demo.config.R;
import com.codegenerate.demo.dto.SysRoleDto;
import com.codegenerate.demo.entity.SysRole;
import com.codegenerate.demo.service.impl.SysRoleServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;


@RestController
@RequestMapping("/sys_role")
public class SysRoleController {

    @Autowired
    SysRoleServiceImpl sysRoleService;


    @PostMapping("/list")
    R<List<SysRole>> list(@RequestBody SysRoleDto sysRoleDto){
        Page<SysRole> page = sysRoleService.page(
                sysRoleDto.buildPage(),sysRoleDto.dto2entity().getQueryAll()
        );
        return R.ok(page.getRecords())
                .setCount(page.getTotal());
    }

    @GetMapping("/getItem")
    R<SysRole> getItem(int id) {
        return R.ok(sysRoleService.getById(id));
    }

    @PostMapping("/add")
    R<Boolean> add(@RequestBody  SysRoleDto sysRoleDto){
        var entity=sysRoleDto.dto2entity();
        //设置 默认
        SysRole.setDefaultValue(entity);
        return R.ok(sysRoleService.save(entity));
    }


    @PostMapping("/update")
    R<Integer> update(@RequestBody  SysRoleDto sysRoleDto){
        sysRoleDto.validateUpdate();
        return R.ok(sysRoleService.getBaseMapper().update(null, sysRoleDto.dto2entity().getUpdateWrapper()));
    }

    @GetMapping("/del")
    R<Boolean> del(@RequestParam("id") int id) {
        return R.ok(sysRoleService.removeById(id));
    }
}




